/*Загрузчик изображений*/
function FileSelector()
{
	this.extensions=false;
	this.root_path=false;
	this.input_name=false;
	this.button_obj=false;
	this.window_obj=false;
	this.count_files=false;
	this.selected_path=false;
	this.input_count=0;
	/*Показ диалога и отправка первого запроса*/
	this.show=function(obj,count_files,extensions,root_path,input_name)
	{
		this.extensions=extensions;
		this.count_files=count_files;
		this.root_path=root_path;
		this.input_name=input_name;
		this.button_obj=$(obj).find('div').addClass('loading').end();
		$.post('/admin/?ajax=select_file',{'file_selector':{'root_path':root_path,'extensions':extensions}},this.viewData);
	};
	/*обработка первого запроса*/
	this.viewData=function(data)
	{
		selected_files=file_selector.button_obj.parents('.file_selector').find('ul.selected li').clone().attr('ondblclick','remove(this)');
		if(selected_files.length)
			data=$('<div>'+data+'</div>').find('.selected ul').append(selected_files).end().html();
		
		$().modal_win({'cont':'<div class="file_selector">'+data+'</div>','title':file_selector.button_obj.text(),'width':'900px','delete_on_close':true,'t_class':'file_select'},true);
		stopLoading();
	};
	/*Поиск диалогового окна*/
	this.getWindowObj=function(obj)
	{
		if(!this.window_obj)this.window_obj=obj?$(obj).parents('.file_selector:first'):$('#modal_win .file_selector');
		return this.window_obj;
	};
	/*Запрос на получение списка файлов и папок*/
	this.changeDir=function(obj,selected_path)
	{
		this.selected_path=selected_path;
		this.getWindowObj(obj).find('.explorer .title').addClass('loading');
		$.post('/admin/?ajax=select_file',{'file_selector':{'root_path':this.root_path,'extensions':this.extensions,'selected_path':selected_path}},this.updateFileLIst);		
	};
	/*обработка полученного списка файлов и папок*/
	this.updateFileLIst=function(data)
	{
		file_selector.window_obj
			.find('.file_list.explorer ul').replaceWith(data).end()
			.find('#selected_path').val(file_selector.selected_path);
		stopLoading();
	};
	/*Добавить файл в список выбранного*/
	this.selectFile=function(obj,path,name)
	{
		obj=$(obj);		
		selected_f=this.getWindowObj(obj).find('.selected ul');
		if(this.count_files=='unlim'||selected_f.find('li').length<this.count_files)
		{
			has_this=false;
			selected_f.find('li').each(function(){
				if($(this).attr('title')==path)
					has_this=true;
			});
			if(!has_this)
				selected_f.append('<li title="'+path+'" ondblclick="remove(this)"><input type="hidden" name="'+this.input_name+'['+this.input_count++ +']" value="'+path+'" />'+(name?name:obj.html())+'</li>');
			else dee_corner.quick_message('Этот файл "'+path+'" уже выбран','notice');
		}
		else dee_corner.quick_message('Можно выбрать файлов - '+this.count_files,'notice');
		
	};
	/*Ответ после загрузки файлов*/
	this.addUploadedFiles=function(path,errors_arr,loaded_arr)
	{
		this.changeDir(false,path);
		for(key in errors_arr)
			dee_corner.quick_message(errors_arr[key],'error');
		for(key in loaded_arr)
			this.selectFile(false,loaded_arr[key],key);
	};
	/*Клик по кнопке ОК */
	this.ok=function(obj)
	{
		dee_modal_win.close();
		selected_files=this.getWindowObj(obj).find('.selected li').removeAttr('ondblclick');
		this.button_obj.parents('.file_selector')
			.find('.count span').text(selected_files.length).end()
			.find('ul.selected').html('').append(selected_files);
		this.window_obj=false;
		this.selected_path=false;
	}
}
var file_selector=new FileSelector();